/*
 * @FilePath: \undefinedc:\Users\sxjct\.leetcode\23.合并k个升序链表.cpp
 * @Brief: 
 * @Version: 1.0
 * @Date: 2021-03-03 17:40:05
 * @Author: tianyiyi
 * @Copyright: Copyright@tianyiyi
 * @LastEditors: Mr.Tian
 * @LastEditTime: 2021-03-25 17:20:41
 */
/*
 * @lc app=leetcode.cn id=23 lang=cpp
 *
 * [23] 合并K个升序链表
 */

// @lc code=start
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
// class Solution {
// public:
//     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)
//     {
//         if(l1 == NULL)
//             return l2;
//         if(l2 == NULL)
//             return l1;
//         if(l1->val < l2->val)
//         {
//             l1->next = mergeTwoLists(l1->next,l2);
//             return l1;
//         }
//         else
//         {
//             l2->next = mergeTwoLists(l1,l2->next);
//             return l2;
//         }
//     }
//     ListNode* mergeKLists(vector<ListNode*>& lists) {
//         if(lists.size() == 0)
//             return NULL;
//         ListNode* res = NULL;
//         for(int i = 0;i < lists.size()  ;i++)
//         {
//             res = mergeTwoLists(lists[i],res);
//         }
//         return res;
//     }
// };


// 优先队列

class Solution {
private:
    priority_queue<int> q;
public:
    ListNode* mergeKLists(vector<ListNode*>& lists)
    {
        for(int )
    }
};
// @lc code=end

